Crate datafusion_expr

source ·
Expand description

DataFusion is an extensible query execution framework that uses Apache Arrow as its in-memory format.

This crate is a submodule of DataFusion that provides types representing logical query plans (LogicalPlan) and logical expressions (Expr) as well as utilities for working with these types.

The expr_fn module contains functions for creating expressions.

Re-exports

Modules

Macros

Structs

  • Logical representation of a user-defined aggregate function (UDAF).
  • Logical representation of a UDF.
  • The signature of a function defines the supported argument types and its volatility.
  • Logical representation of a user-defined window function (UDWF) A UDWF is different from a UDF in that it is stateful across batches.

Enums

  • Enum of all built-in scalar functions
  • Represents the result of evaluating an expression: either a single ScalarValue or an [ArrayRef].
  • Operators applied to expressions
  • Indicates whether and how a filter expression can be handled by a TableProvider for table scans.
  • Indicates the type of this table for metadata/catalog purposes.
  • A function’s type signature, which defines the function’s supported argument types.
  • A function’s volatility, which defines the functions eligibility for certain optimizations

Statics

  • Currently supported types by the nullif function. The order of these types correspond to the order on which coercion applies This should thus be from least informative to most informative

Traits

  • Describes an aggregate functions’s state.
  • Trait for converting a type to a Literal literal expression.
  • Partition evaluator for Window Functions
  • The TableSource trait is used during logical query planning and optimizations and provides access to schema information and filter push-down capabilities. This trait provides a subset of the functionality of the TableProvider trait in the core datafusion crate. The TableProvider trait provides additional capabilities needed for physical query execution (such as the ability to perform a scan). The reason for having two separate traits is to avoid having the logical plan code be dependent on the DataFusion execution engine. Other projects may want to use DataFusion’s logical plans and have their own execution engine.
  • Trait for converting a type to a literal timestamp

Functions